package com.zb.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zb.entity.ZjWorkBackVisitTemplateModule;
import com.zb.extend.WorkBackVisitTemplateModuleExtend;
import com.zb.vo.TemplateModuleVo;

import java.util.List;

/**
 * <p>
 * 工单回访模板模块关联表 服务类
 * </p>
 *
 * @author WEN
 * @since 2023-10-08
 */
public interface ZjWorkBackVisitTemplateModuleService extends IService<ZjWorkBackVisitTemplateModule> {

    /**
     * 保存回访应用模块
     * @param custAccId 商家ID
     * @param workBackVisitTemplateId 回访模板ID
     * @param templateModuleIds
     * @param delTemplateModuleIds
     */
    void save(Long custAccId, Long workBackVisitTemplateId, List<TemplateModuleVo> templateModuleIds, List<Long> delTemplateModuleIds);

    /**
     * 根据回访ID获取应用模块
     * @param workBackVisitTemplateIds
     * @return
     */
    List<WorkBackVisitTemplateModuleExtend> getByWorkBackVisitTemplateIds(List<Long> workBackVisitTemplateIds);

    /**
     * 根据回访ID获取应用模块
     * @param workBackVisitTemplateId
     * @return
     */
    List<ZjWorkBackVisitTemplateModule> getByWorkBackVisitTemplateId(Long workBackVisitTemplateId);

    /**
     * 根据回访模板ID删除
     * @param workBackVisitTemplateIds
     */
    void deleteBatchByWorkBackVisitTemplateIds(List<Long> workBackVisitTemplateIds);

    /**
     * 根据模块ID获取回访模板应用模块
     * @param moduleId
     * @return
     */
    List<ZjWorkBackVisitTemplateModule> getByModuleId(Long moduleId);

    /**
     * 根据模块ID集合获取回访模板应用模块
     * @param moduleIds
     * @return
     */
    List<ZjWorkBackVisitTemplateModule> getByModuleIds(List<Long> moduleIds);
}
